import { IUserResourceResponse } from "@/api/auth";

export const transformListToTree = (list: IUserResourceResponse[]) => {
  const data = list?.filter(
    (x) => x.resourceType === "02" || x.resourceType === "03" || x.resourceType === "04"
  );
  // 1. 创建一个映射表，用于快速查找节点
  const map = new Map();
  data.forEach((item) => {
    map.set(item.resourceId, { ...item, children: [] });
  });

  // 2. 构建树形结构
  const tree: any = [];
  data.forEach((item) => {
    const parentId = item.parentId;
    if (parentId && map.has(parentId)) {
      // 如果当前节点有父节点，将其挂载到父节点的 children 中
      map.get(parentId).children.push(map.get(item.resourceId));
    } else {
      // 如果当前节点没有父节点，则认为是根节点
      tree.push(map.get(item.resourceId));
    }
  });

  return tree;
};
